package com.jwsoft.manager.core.dao.model;

import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * 人才子女信息
 *
 * @author hhj
 * @since 2023-04-26
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("edu_talent")
@Schema(name = "EduTalent", title = "人才子女信息", description = "人才子女信息实体类")
public class EduTalent extends Model<EduTalent> {

    private static final long serialVersionUID = 1L;

    @Schema(name = "talentId", title = "主键")
    @TableId(value = "talent_id", type = IdType.ASSIGN_ID)
    private Long talentId;

    @Schema(name = "idcard", title = "学生身份证")
    @TableField(value = "idcard")
    private String idcard;

    @Schema(name = "fullName", title = "学生姓名")
    @TableField(value = "full_name")
    private String fullName;

    @Schema(name = "cardType", title = "学生证件类型")
    @TableField(value = "card_type")
    private String cardType;

    @Schema(name = "birthYmd", title = "出生日期")
    @TableField(value = "birth_ymd")
    private String birthYmd;

    @Schema(name = "sex", title = "性别")
    @TableField(value = "sex")
    private String sex;

    @Schema(name = "nation", title = "民族")
    @TableField(value = "nation")
    private String nation;
    @Schema(name = "schoolCategory", title = "就读学段")
    @TableField(value = "school_category")
    private String schoolCategory;
    @Schema(name = "talentFullName", title = "人才姓名")
    @TableField(value = "talent_full_name")
    private String talentFullName;

    @Schema(name = "talentCardType", title = "人才证件类型")
    @TableField(value = "talent_card_type")
    private String talentCardType;

    @Schema(name = "talentIdcard", title = "人才证件号码")
    @TableField(value = "talent_idcard")
    private String talentIdcard;

    @Schema(name = "relationshipType", title = "与学生的关系类型：1父亲 2母亲 3爷爷 4奶奶 5外公 6外婆 7监护人")
    @TableField(value = "relationship_Type")
    private String relationshipType;

    @Schema(name = "talentType", title = "人才类别 1高层次人才、2符合条件的企业人员、3教育系统人才")
    @TableField(value = "talent_type")
    private String talentType;

    @Schema(name = "educationType", title = "学历/学位")
    @TableField(value = "education_type")
    private String educationType;

    @Schema(name = "technicalTitle", title = "职称/高级技师资格")
    @TableField(value = "technical_title")
    private String technicalTitle;

    @Schema(name = "telphone", title = "联系电话")
    @TableField(value = "telphone")
    private String telphone;

    @Schema(name = "workUnit", title = "工作单位")
    @TableField(value = "work_unit")
    private String workUnit;

    @Schema(name = "address", title = "现居住地址")
    @TableField(value = "address")
    private String address;

    @Schema(name = "householdPlace", title = "户籍地")
    @TableField(value = "household_place")
    private String householdPlace;

    @Schema(name = "jobResume", title = "人才工作简历")
    @TableField(value = "job_resume")
    private String jobResume;

    @Schema(name = "studyIntention", title = "人才子女就读意向")
    @TableField(value = "study_intention")
    private String studyIntention;

    @Schema(name = "fileIdcard", title = "身份证照片")
    @TableField(value = "file_idcard")
    private String fileIdcard;

    @Schema(name = "fileHousehold", title = "户口本")
    @TableField(value = "file_household")
    private String fileHousehold;

    @Schema(name = "fileTalent", title = "人才证明材料")
    @TableField(value = "file_talent")
    private String fileTalent;

    @Schema(name = "fileContract", title = "用工合同或者社保")
    @TableField(value = "file_contract")
    private String fileContract;

    @Schema(name = "fileRecommendation", title = "企业推荐书")
    @TableField(value = "file_recommendation")
    private String fileRecommendation;

    @Schema(name = "sbSyncFlag", title = "社保同步方式:0 未同步 1 有社保 2 同步没有社保 3 失败")
    @TableField(value = "sb_sync_flag")
    private String sbSyncFlag;

    @Schema(name = "sbRemarks", title = "社保同步备注")
    @TableField(value = "sb_remarks")
    private String sbRemarks;

    @Schema(name = "schoolIdIntention", title = "就读意向学校id")
    @TableField(value = "school_id_intention")
    private String schoolIdIntention;

    @Schema(name = "schoolNameIntention", title = "就读意向学校名称")
    @TableField(value = "school_name_intention")
    private String schoolNameIntention;
    @Schema(name = "schoolNatureIntention", title = "就读意向学校性质")
    @TableField(value = "school_nature_intention")
    private String schoolNatureIntention;
    @Schema(name = "configTypeNameIntention", title = "就读意向类型")
    @TableField(value = "config_type_name_intention")
    private String configTypeNameIntention;
    @Schema(name = "configTypeNameAllocation", title = "分配类型")
    @TableField(value = "config_type_name_allocation")
    private String configTypeNameAllocation;
    @Schema(name = "schoolIdAllocation", title = "分配学校id")
    @TableField(value = "school_id_allocation")
    private String schoolIdAllocation;

    @Schema(name = "schoolNameAllocation", title = "分配学校名称")
    @TableField(value = "school_name_allocation")
    private String schoolNameAllocation;

    @Schema(name = "batchNo", title = "提交批次号")
    @TableField(value = "batch_no")
    private Long batchNo;

    @Schema(name = "authStatus", title = "审核状态")
    @TableField(value = "auth_status")
    private String authStatus;

    @Schema(name = "authRemarks", title = "审核意见")
    @TableField(value = "auth_remarks")
    private String authRemarks;

    @Schema(name = "authTime", title = "审核时间")
    @TableField(value = "auth_time")
    private Date authTime;

    @Schema(name = "year", title = "招生年度")
    @TableField(value = "year")
    private Integer year;

    @Schema(name = "areaCode", title = "行政区划")
    @TableField(value = "area_code")
    private String areaCode;

    @Schema(name = "authUserId", title = "审核人")
    @TableField(value = "auth_user_id")
    private String authUserId;

    @Schema(name = "createName", title = "创建人")
    @TableField(value = "create_name", fill = FieldFill.INSERT, updateStrategy = FieldStrategy.NOT_NULL)
    private String createName;

    @Schema(name = "createTime", title = "创建时间")
    @TableField(value = "create_time", fill = FieldFill.INSERT, updateStrategy = FieldStrategy.NOT_NULL)
    private Date createTime;

    @Schema(name = "updateName", title = "修改人")
    @TableField(value = "update_name", fill = FieldFill.INSERT_UPDATE, updateStrategy = FieldStrategy.NOT_NULL)
    private String updateName;

    @Schema(name = "updateTime", title = "更新时间")
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE, updateStrategy = FieldStrategy.NOT_NULL)
    private Date updateTime;

    @Schema(name = "del", title = "逻辑删除标志")
    @TableField(value = "del", fill = FieldFill.INSERT, updateStrategy = FieldStrategy.NOT_NULL)
    @TableLogic
    private String del;

    @Override
    public Serializable pkVal() {
        return this.talentId;
    }
}
